<?php

/**
* JSON_ENCODE로 출력 후 페이지 종료
* 
* @author replica50
* @since 2013.05.22
* 
* @param array $aParam 연관배열
*/
function jsonEncodePrint($aParam)
{
    echo json_encode($aParam);
    exit;
}

/**
* 모바일단으로 보낼 메세지를 생성한다.
* 
* @author replica50
* @since 2013.05.23
* 
* @modify gudals 2013-07-11
* - 변수명 변경
* 
* @param array $aData 공통 리턴항목
* @param array $aOwner 개별 리턴항목
* @return multitype:unknown multitype:unknown
*/
function getMakeApiMsg($aData, $aOwner = array())
{
    $aRet = array(
        "resT" => $aData[0],
        "resP" => $aData[1],
        "resMsg" => $aData[2]
    );

    $aReturn = array(
        "ret" => $aRet,
        "owner" => $aOwner
    );

    return $aReturn;
}

/**
 * 필수 요청 항목 체크
 * 
 * @param array $aParam 연관배열
 * @param array $aEstParam 필수 항목 type
 */
function chkRequiredVariable($aParam, $aEstParam)
{
    foreach ($aEstParam as $key => $val) {
        // 값에 따른 type 체크 
        if ($val == 'int') $is_type = 'is_numeric';
        else $is_type = 'is_string';
        
        if (empty($aParam[$key]) === true) {
            //return array(false, '필수 요청항목이 누락되었습니다.');
            return false;
        }
        
        if (array_key_exists($key, $aParam) === false) {
            //return array(false, '필수 요청항목이 누락되었습니다. ['.$key.']');
            return false;
        }
        
        if ($is_type($aParam[$key]) === false) {
            //return array(false, '필수 요청항목 변수형이 잘못 되었습니다. ['.$key.']');
            return false;
        }
    }

    return true;
}

/**
* 변수형에 맞게 값이 들어왔는지 확인
* 
* @param array $aParam 연관배열 [key => 변수형, val => 값]
* @return boolean
*/
function chkTypesVariable($aParam)
{
    foreach ($aParam as $key => $val) {
        if ($key == 'int' && is_numeric($val) === false)
            return false;
        else {
            if (empty($key) === false && empty($val) === true)
                return false;
        }
    }

    return true;
}